In an environment with multiple clusters (computing platforms) that host virtual machine (VMs), there are situations when a virtual machine and its functionality are moved from one cluster to another cluster. In many such environments, a subject virtual machine might need to be moved from its original cluster location to a new cluster location. In many cases, the functions provided by the subject virtual machine rely on stored data. One legacy approach for moving the functions of a VM is to move the VM's data (e.g., a file or set of blocks), and then start the virtual machine in the new cluster location.
Unfortunately, this legacy technique introduces unwanted latency and unwanted costs. For example, it may require a lot of elapsed time to move a file or set of blocks from the original cluster location to the new source location. Moreover, the act of moving the file or set of blocks from the original cluster location to the new source location might consume a significant amount of network bandwidth, which may have associated significant costs. In some cases (e.g., in enterprise situations) moving a file or set of blocks can consume many hours of elapsed time and many gigabytes or terabytes of data, thus introducing unacceptable latency before the subject virtual machine can serve its functions in the new cluster. Merely performing data compression only potentially ameliorates the problem.
Solving this problem demands a technique or techniques to move a virtual machine to a new cluster, and also move just enough of the files or sets of blocks so that the virtual machine can initiate operations even before the entirety of the file or set of blocks is moved (if ever) to the new cluster location. In some settings and/or in some applications, even though a particular corpus of data accessed by a virtual machine might comprise many gigabytes or terabytes of data, it sometime occurs that the virtual machine needs to access only a relatively small portion of the corpus to be fully functional. Especially in such cases, the legacy techniques are extremely wasteful.
What is needed is a technique or techniques to improve over legacy and/or over other considered approaches. Some of the approaches described in this background section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.